In client-server computer systems, remote server computers provide access to content (such as web pages) and services to local client computers over a network. While this allows for centralized management of such content and services, issues related to connectivity (such as being disconnected from the network or when the network is slow) can affect the capability of the client.
Although such content and services could be maintained (and synchronized) locally on the client (that is, a “fat client”), this greatly complicates the client design and defeats one of the chief benefits of the client-server architecture. Consequently, there is a need to be able to provide the timely availability of the server content and services to the client when network connectivity is broken or insufficiently responsive, and without having to maintain the server content or services locally.